Closed-loop hybrid orthotic system for rehabilitation and functional mobility assistance

ABSTRACT

Hybrid orthotic devices configured to apply electrical stimulation to one or more body parts of a person are generally described. A hybrid orthotic device may comprise one or more sensors, one or more electrodes, and a controller configured to receive input signals from the one or more sensors and deliver output signals to the one or more electrodes. In certain cases, the controller may be configured to store one or more programs associated with functional activities (e.g., standing, sitting, and/or walking), and the programs may be configured to enable one or more body parts of the person to track a desired trajectory. In some embodiments, a program may implement a Robust Integral of the Sign of the Error (RISE) control method. The program may further implement control methods to compensate for electromechanical delay and/or muscle fatigue. In certain embodiments, a program may further implement neural network (NN)-based methods.

RELATED APPLICATIONS

The present application is a U.S. national stage filing under 35 U.S.C. § 371 based on International Application No. PCT/US2014/071309 entitled “CLOSED-LOOP HYBRID ORTHOTIC SYSTEM FOR REHABILITATION AND FUNCTIONAL MOBILITY ASSISTANCE”, filed Dec. 18, 2014, which claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Application Ser. No. 61/917,586 entitled “CLOSED-LOOP HYBRID ORTHOTIC SYSTEM FOR REHABILITATION AND FUNCTIONAL MOBILITY ASSISTANCE”, filed Dec. 18, 2013, which is hereby incorporated by reference in its entirety for all purposes.

GOVERNMENT FUNDING

Research leading to various aspects of the present invention was sponsored, at least in part, by the National Science Foundation under Grants No. CMMI-1161260 and CMMI-0547448. The U.S. Government has certain rights in the invention.

FIELD

The present invention generally relates to orthotic devices and, in particular, to hybrid orthotic devices comprising a controller and one or more electrodes.

BACKGROUND

Upper motor neuron lesions (UMNL), which may be caused by neural disorders such as stroke, cerebrovascular accident, spinal cord injury, cerebral palsy, and/or traumatic brain injury, cause disability and paralysis in millions of people. Since the lower motor neuron system and muscles are generally intact in those with UMNL, muscle contractions may be evoked by directly applying electrical stimulus to the muscles via one or more electrodes. This technique, which may be used for rehabilitation and restoration of motor function, may be referred to as neuromuscular electrical stimulation (NMES). It may also be referred to as functional electrical stimulation (FES) when it is applied to produce a functional outcome, such as standing and/or walking.

A number of challenges have been associated with development of NMES devices and methods, including the nonlinear response of muscle to electrical stimulation, load changes during functional movement, unexpected muscle spasticity, time lag between electrical stimulation and muscle force output, uncertainties in muscle physiology (e.g., temperature, pH, and/or architecture), and muscle fatigue. Improved devices and methods for application of electrical stimulation to a human body to produce functional outcomes would be desirable.

SUMMARY

Embodiments described herein generally relate to orthotic devices and, in particular, to hybrid orthotic devices comprising a controller and one or more electrodes. The subject matter of the present invention involves, in some cases, interrelated products, alternative solutions to a particular problem, and/or a plurality of different uses of one or more systems and/or articles.

In some embodiments, an orthotic device is provided. According to certain embodiments, the orthotic device comprises one or more sensors, one or more electrodes, and a nonlinear controller configured to receive input signals from the one or more sensors and deliver output signals to the one or more electrodes.

In another set of embodiments, an orthotic device comprises a bracing element configured to attach to a limb of a person, one or more sensors configured to measure the angle between a first body part of the person and a second body part of the person coupled at a joint, one or more electrodes configured to apply electrical stimulation to one or more body parts of the person, and a nonlinear controller configured to receive input signals from the one or more sensors and deliver output signals to the one or more electrodes.

Methods of providing functional electrical stimulation to a person are also provided. In some embodiments, the method comprises receiving signals from at least one sensor, calculating an amount of electrical stimulation to apply to at least one body part of the person, and delivering electrical stimulation to the at least one body part of the person via at least one electrode.

Other advantages and novel features of the present invention will become apparent from the following detailed description of various non-limiting embodiments of the invention when considered in conjunction with the accompanying figures. In cases where the present specification and a document incorporated by reference include conflicting and/or inconsistent disclosure, the present specification shall control. If two or more documents incorporated by reference include conflicting and/or inconsistent disclosure with respect to each other, then the document having the later effective date shall control.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting embodiments of the present invention will be described by way of example with reference to the accompanying figures, which are schematic and are not intended to be drawn to scale. In the figures, each identical or nearly identical component illustrated is typically represented by a single numeral. For purposes of clarity, not every component is labeled in every figure, nor is every component of each embodiment of the invention shown where illustration is not necessary to allow those of ordinary skill in the art to understand the invention. In the figures:

FIG. 1 shows an exemplary schematic illustration of a hybrid orthotic device comprising a knee brace, according to some embodiments;

FIG. 2 shows, according to some embodiments, an exemplary schematic illustration of a hybrid orthotic device comprising a knee brace and elastic resistance elements;

FIG. 3 shows an exemplary schematic illustration of a hybrid orthotic device comprising a knee and ankle brace, according to some embodiments;

FIG. 4 shows an exemplary block diagram of a system comprising a portable closed-loop functional electrical stimulation unit, according to some embodiments;

FIG. 5 shows, according to some embodiments, an exemplary block diagram of a system comprising an externally-powered closed-loop functional electrical stimulation unit; and

FIG. 6 shows an exemplary block diagram of a system comprising a controller for an orthotic device, according to some embodiments.

DETAILED DESCRIPTION

Hybrid orthotic devices configured to apply electrical stimulation to one or more body parts of a person are generally described. In some embodiments, a hybrid orthotic device comprises one or more sensors, one or more electrodes, and a controller configured to receive input signals from the one or more sensors and deliver output signals to the one or more electrodes. In some embodiments, the controller may be nonlinear in that stimulus signals generated by the controller may be different in different contexts, even for the same inputs to the controller. In certain cases, the nonlinear controller may be configured to store one or more programs, which may, when executed, implement algorithms as described herein. The one or more programs may be associated, in some embodiments, with functional activities (e.g., standing, sitting, and/or walking), and the programs may be configured to enable one or more body parts of a wearer to track a desired trajectory. In some embodiments, a program may implement a Robust Integral of the Sign of the Error (RISE) control method, which will be discussed in more detail below. It may be desirable, in some cases, to implement a RISE-based control method, at least in part because such methods may achieve asymptotic stability, even in the presence of unknown, additive disturbances and parametric uncertainties in a nonlinear system. A RISE-based control method generally does not require knowledge of a muscle model. It may also be desirable to implement a RISE-based control method because such methods may be continuous. In some cases, a program may further implement control methods to compensate for electromechanical delay and/or muscle fatigue. In certain embodiments, a program may further implement adaptive learning methods, such as neural network (NN)-based methods.

In some embodiments, the hybrid orthotic device comprises one or more sensors. In certain cases, at least one of the sensors may be an electrogoniometer. Generally, an electrogoniometer refers to an instrument for measuring angles. In some cases, the electrogoniometer may be attached to the hybrid orthotic device so as to measure the angle between a first body part of a person and a second body part of a person, coupled at a joint, and to which the hybrid orthotic device may be attached. In certain embodiments, at least one of the sensors may be a pressure sensor. In some such embodiments, the pressure sensor may, for example, measure pressure applied by a body part (e.g., a foot) on a surface (e.g., the ground). In some embodiments, at least one of the sensors may be configured to measure velocity of a joint.

The hybrid orthotic device may comprise one or more electrodes. In some embodiments, at least one of the electrodes may be configured to apply electrical stimulation to one or more body parts of a person. For example, at least one of the electrodes may be configured to apply electrical stimulation to the skin of a person and to one or more underlying skeletal muscles. The stimulation may cause the muscles to contract, when above a level, or allow the muscle to relax, when below a level. Non-limiting examples of skeletal muscles and muscle groups that may be stimulated, based on configuration of the hybrid orthotic device, include the quadriceps femoris, hamstrings, triceps surae, tibialis anterior, and biceps femoris. For example, it may be desirable to apply electrical stimulation to portions of the quadriceps femoris muscle group to induce extension of a knee as part of a functional activity, such as standing, sitting, and/or walking. In some embodiments, the electrodes may be bipolar electrodes. In certain cases, the electrodes may be self-adhesive electrodes, and may be rigidly coupled to structural members of the hybrid orthotic device and/or separately attached to a wearer of the device. In some cases, the orthotic device may comprise at least two electrodes.

The hybrid orthotic device may further comprise a controller. In some embodiments, the controller may be a nonlinear controller configured to receive input signals from one or more sensors and deliver output signals to one or more electrodes. The controller may, in certain cases, generate output signals as a nonlinear function of the input signals based at least in part on a determined parameter indicative of muscle fatigue. In some embodiments, the controller may be connected to one or more sensors via electrical leads. In some cases, the electrical leads may comprise power and/or data lines. For example, in certain embodiments, power may be transferred from the controller to the one or more sensors, and data may be transferred from the one or more sensors to the controller. In some embodiments, the controller may be connected to one or more electrodes via electrical leads. In certain cases, the electrical leads may be one-way leads. For example, in some cases, signals may be transferred from the controller to the one or more electrodes, but no data may be transferred from the electrodes to the controller. In some cases, the controller may be connected to at least two electrodes. The controller may be configured to deliver interleaved output signals to the at least two electrodes. In some embodiments, the controller may comprise inputs and outputs for connecting with a computer, for example for programming and/or data logging. The controller may, in some cases, be configured to record data from previous activities.

In some cases, the nonlinear controller may be configured to store one or more programs. The one or more programs may be associated, in some embodiments, with one or more functional activities, and the programs may be configured to enable one or more body parts of the person to track a desired trajectory. In some embodiments, a program may implement a closed-loop control method. A program may, in certain cases, implement a continuous feedback control method. In some cases, a program may implement a control method that yields asymptotic stability for a nonlinear system (e.g., muscle model) in the presence of bounded nonlinear disturbances (e.g., muscle spasticity, electromechanical delays, muscle fatigue). In some embodiments, the program may implement a control method that tracks the time-varying trajectory of at least one body part of the person. The program may, in certain cases, implement a RISE-based control method. In some cases, a program may further implement control methods to compensate for electromechanical delay and/or muscle fatigue. For example, the control method may comprise a predictor-type method to compensate for electromechanical delay. In certain embodiments, a program may further implement adaptive learning methods. For example, a program may implement a control method comprising an adaptive feedforward method. In some embodiments, the adaptive learning methods may comprise neural network (NN)-based methods.

The programs, when executed, may cause the controller to receive and process outputs of one or more sensors and, based on those outputs and/or other data, derive one or more stimulus signals to apply to one or more electrodes. The stimulus signals may have one or more characteristics that change over time, such that the stimulus applied to muscles of a wearer is modulated. In some cases, the program may implement a voltage modulation scheme (e.g., with a fixed frequency and a fixed pulse width) and/or a pulse width modulation scheme (e.g., with a fixed voltage and a fixed frequency). In some cases, the program may implement a frequency modulation scheme (e.g., with a fixed voltage and a fixed pulse width).

One problem that may arise during NMES is rapid onset of muscle fatigue during repeated contractions. The onset of muscle fatigue may be correlated with stimulation parameters such as intensity, frequency, and pattern of stimulation, with higher stimulation frequencies causing muscle to fatigue faster. The controller may be configured to generate stimulus signals based on passage of time and/or indicators of fatigue. In some embodiments, the program may implement a scheme comprising feedback-based frequency modulation to reduce fatigue. In certain cases, the program may implement a modulation scheme that adjusts frequency to maintain body part position tracking error within a specified range. For example, in some cases, the stimulation frequency may be progressively increased or decreased. Starting with a low frequency and changing to a high frequency when muscle output dictates higher demands may more closely mimic biological approaches than constant frequency schemes. In some cases, the program may implement a control method that increases and/or decreases the amplitude and/or frequency of the output signals according to a predefined rule. In certain embodiments, the program may implement a control method that modulates the amplitude and/or frequency of the output signals based at least in part on a value of one or more parameters indicative of muscle fatigue.

The hybrid orthotic device may comprise a bracing element configured to attach to a limb of a person. In some embodiments, the bracing element comprises one or more cuffs. In some embodiments, the bracing element may comprise a first cuff configured to attach to a first body part of a person and a second cuff configured to attach to a second body part of a person, where the first body part and second body part are coupled at a joint (e.g., knee, ankle, elbow, shoulder, wrist, hip). The cuffs may be adjustable and may be tightened or loosened (e.g., such that the cuff fits around a limb, such as a leg). In some cases, the cuffs may be substantially flexible (e.g., resilient), semi-rigid, or substantially rigid (e.g., non-resilient). The cuffs may comprise materials including, but not limited to, fabric (e.g., polyester, nylon, neoprene), plastic, and/or metal (e.g., aluminum). The cuffs may be fastened by any suitable fastener, including those now known in the art. For example, the cuffs may be fastened by one or more Velcro fasteners, buckles, and/or hook fasteners. In some embodiments, the bracing element may further comprise a sleeve. The sleeve may be substantially flexible (e.g., such that it can conform to the limb and/or joint). In certain embodiments, the sleeve may comprise a fabric. The bracing element may, in some cases, allow hinged movement of the joint (e.g., may not inhibit flexion and/or extension of the joint). In some embodiments, the bracing element may advantageously provide lateral and/or rotational stability to the joint. For example, the bracing element may prevent hyperextension and/or excessive rotation of the joint.

In some embodiments, the hybrid orthotic device may further comprise one or more elastic resistance elements. The elastic resistance element may comprise a first end secured to a first location on the bracing element and a second end secured to a second location on the bracing element. In certain cases, the elastic resistance element may comprise a spring and/or an elastic band. It may be desirable, in some cases, for the orthotic device to comprise an elastic resistance element for use in exercising one or more parts of the body.

FIG. 1 shows an exemplary schematic illustration of a hybrid orthotic device, according to some embodiments of the invention. In FIG. 1, hybrid orthotic device 100 comprises bracing element 102, which is configured to be worn on a leg. In some embodiments, the bracing element may comprise one or more cuffs. For example, in FIG. 1, bracing element 102 comprises two cuffs: one that can be positioned around the lower leg, and one that can be positioned around the thigh. In some embodiments, one or more sensors and their associated electrical leads may be embedded in the bracing element. For example, in FIG. 1, sensor 104 and electrical leads 106 are embedded in bracing element 102, with sensor 104 located at a hinge of bracing element 102 located between the two cuffs. Sensor 104 may, in some cases, be an electrogoniometer configured to measure joint angle. Electrical leads 106 may connect sensor 104 to a controller 108, which may also be attached to bracing element 102. The controller may comprise a portable power supply (e.g., batteries) and inputs and outputs for interfacing with sensors, electrodes, and/or external computers. For example, controller 108 may be configured to send power to and receive data (e.g., data about the joint angle) from sensor 104 via electrical leads 106. Controller 108 may also be configured to receive and store programs from and send data to an external computer. Additionally, controller 108 may also be configured to send output stimulation signals to electrodes 110 via electrical leads 112 to cause contractions of the muscles of the wearer to induce a desired joint motion. In some embodiments, leads 112 may be one-way leads (e.g., data may not be transmitted from electrodes 110 to controller 108). In FIG. 1, electrodes 110 and leads 112 are embedded in a sleeve 114. Sleeve 114, which may comprise a flexible material and conform to the joint and leg, may be positioned under bracing element 102. In some embodiments, electrodes 110 may be configured to be in contact with the skin of a person and to transmit electrical stimulation to underlying muscle. In some embodiments, electrodes 110 may be used to activate different muscle groups at the same time.

An exemplary schematic illustration of a hybrid orthotic device comprising elastic resistance elements is shown in FIG. 2. Like orthotic device 100 in FIG. 1, orthotic device 200 in FIG. 2 comprises a bracing element 202 and a sensor 204, which is connected to controller 208 via electrical leads 206. Sensor 204, electrical leads 206, and controller 208 are embedded in bracing element 202. In FIG. 2, controller 208 is connected to a cable 216. Controller 208 may be configured to receive power from an external power source via cable 216. Controller 208 may also be configured to communicate with an external computer in real time (e.g., for data logging and/or visualization) via cable 216. Additionally, controller 208 is connected to electrodes 210 via electrical leads 212. Electrodes 210 and electrical leads 212 are embedded in a sleeve 214. Orthotic device 200 also comprises elastic resistance element 218, which is attached to bracing element 202 via anchors 220. Elastic resistance element 218 may be a tension or compression element. In some cases, it may be desirable for an orthotic device to comprise one or more elastic resistance elements for exercising a joint. Anchors 220 may allow elastic resistance element 218 to be easily removed and replaced, facilitating exercise that calls for progressive increase and/or decrease of resistance.

FIG. 3 shows an exemplary schematic illustration of a hybrid orthotic device configured to induce movement about the knee and/or ankle joints, according to some embodiments. In FIG. 3, orthotic device 300, which is a knee-ankle-foot orthosis, comprises bracing element 302. Bracing element 302 may comprise one or more hinges and may be substantially flexible, semi-rigid, or rigid. In FIG. 3, bracing element 302 comprises a first adjustable cuff configured to attach to a lower leg and a second adjustable cuff configured to attach to a thigh. Bracing element 302 further comprises a foot piece designed to fit inside a shoe for a foot. A pressure sensor 308 may be in direct contact with the foot piece. Pressure sensor 308 may be configured to collect data relating to contact between the foot and an external surface (e.g., the ground) and to transmit the data to a controller 312 via electrical lead 310. In FIG. 3, additional sensors 304 are embedded in bracing element 302. In some embodiments, at least one of sensors 304 is an electrogoniometer. The electrogoniometer may measure, for example, knee and/or ankle angle. Sensors 304 may be configured to transmit data to controller 312 via electrical leads 306. In some cases, electrical leads 306 and 310 may comprise power and data lines. In FIG. 3, controller 312 is also connected to electrodes 314 via electrical leads 316. Electrodes 314 and electrical leads 316 may be embedded in sleeve 318. In some embodiments, electrodes 314 may be configured to apply stimulation to induce flexion, extension, or rotation of the knee and/or ankle.

FIG. 4 displays an exemplary schematic block diagram illustrating the interactions between components of a system comprising a hybrid orthotic device, according to some embodiments. It should be appreciated that FIG. 4 is a functional block diagram and the components represented in that block diagram may be configured and positioned in any suitable way, including as illustrated in any of FIGS. 1-3. In FIG. 4, system 400 comprises a body 402, sensors 404, electrodes 406, orthosis 408, and a closed-loop functional electrical stimulation (CL-FES) unit 410. Sensors 404 are in direct contact with body 402, and they transmit body state information to CL-FES unit 410. CL-FES unit 410 comprises a microcontroller, a stimulator, and a power supply. The power supply may supply power to the microcontroller and the stimulator, and may additionally supply power to sensors 404. The microcontroller receives body state information from sensors 404. Additionally, the microcontroller is configured to receive programming input from an external computer and to transmit data to the external computer. In some embodiments, a connection to an external computer may be active while the device is in operation to enable the external computer to perform some or all of the control functions. The microcontroller can also send information to the stimulator, which transmits a stimulation signal to electrodes 406. Electrodes 406 are in direct contact with body 402, and the electrical stimulation may induce movement of body 402 such that a functional activity may be performed. CL-FES unit 410 is also in direct contact with an orthosis 408, which may provide stabilizing forces to body 402.

An exemplary schematic block diagram illustrating the interactions between components of a system comprising an externally-powered hybrid orthotic device, according to some embodiments, is shown in FIG. 5. In FIG. 5, CL-FES unit 510 comprises a stimulator and microcontroller, like CL-FES unit 410. However, unlike CL-FES unit 410, CL-FES unit 510 does not comprise a power source. Rather, power is supplied from external power supply 512. Additionally, in FIG. 5, CL-FES unit 510 is in direct contact with orthosis 508, which comprises one or more elastic resistance units. Orthosis 508 is therefore configured to provide not only stabilizing forces but also resistance forces to body 502.

FIG. 6 displays an exemplary schematic block diagram illustrating the interactions between components of a controller, according to some embodiments. In FIG. 6, a state of user 602 is measured. The state may be represented in whole or in part by sensor outputs and may include, for example, joint angle. The measured state may then be compared to the state estimated by state estimator 604. The difference between the measured state and the estimated state may be sent to compensator 606, which utilizes a compensating method to compensate for differences between the measured and estimated states. The measured state may also be compared to the desired trajectory, and the tracking error may be sent to controller 608. Controller 608 utilizes a control method to minimize the tracking error and calculate the amplitude, frequency, and pulse width of output signals (which may serve as stimulus signals input to electrodes) to enable user 602 to most closely follow the desired trajectory. Output from compensator 606 and controller 608 may be sent to fatigue compensator 610, which compensates for muscle fatigue induced by electrical stimulation. Compensation, for example, may increase stimulation as increased fatigue is measured. The output signals may then be sent to electrodes to apply electrical stimulation to user 602.

Some embodiments relate to methods of providing functional electrical stimulation to a person. For example, a method may comprise the step of receiving signals from at least one sensor. Additionally, the method may comprise the steps of calculating an amount of electrical stimulation to apply to at least one body part of the person and delivering electrical stimulation to the at least one body part of the person.

Joint Model

It may be desirable, in some cases, to model the total dynamics of a joint to facilitate development of a controller that could enable movement about the joint to follow a desired trajectory. In some embodiments, the total dynamics of a joint can be modeled as: M _(I) +M _(e) +M _(g) +M _(v)+τ_(d)=τ  (1) where M_(I) represents inertial effects of one or more body parts about the joint, M_(e) represents elastic effects due to joint stiffness, M_(g) represents gravitational effects, M_(v) represents viscous effects due to damping in the musculotendon complex, τ_(d) represents one or more unknown bounded disturbances (e.g., muscle spasticity, dynamic fatigue, signal and response delays, changing muscle geometry, and/or load changes during functional tasks), and τ represents the torque produced at the joint. The first and second time derivatives of unknown disturbance τ_(d) can be assumed to exist and to be bounded.

Inertial effects M_(I) can be modeled, in some cases, as: M _(I)({umlaut over (q)}(t))=J{umlaut over (q)}(t)  (2) where {umlaut over (q)}(t) denotes the angular acceleration of the one or more body parts about the joint, and J denotes the unknown inertia of the one or more body parts.

In certain cases, elastic effects M_(e) can be modeled as: M _(e)(g(t))=−k ₁ e ^(−k) ² ^(q(t))(q(t)−k ₃)  (3) where q(t) denotes the angular position of the one or more body parts about the joint, and k₁, k₂, and k₃ are unknown positive coefficients.

Gravitational effects M_(g) may be modeled as: M _(g)(q(t))=−mgl sin(q(t))  (4) where m denotes the unknown combined mass of the body parts, l is the unknown distance between the joint and the center of mass of the body parts, and g denotes the gravitational acceleration. Gravitational acceleration generally refers to the value of about 9.8 meters per second squared (m/s²).

Viscous effects M_(v) may be modeled as: M _(v)({dot over (q)}(t))=B ₁ tan h(−B ₂ {dot over (q)}(t))−B ₃ {dot over (q)}(t)  (5) where {dot over (q)}(t) denotes the angular velocity of the body parts about the joint and B₁, B₂, and B₃ are unknown positive constants.

Torque τ(t) about the joint may be produced through muscle tendon forces F_(T)(t), such as those generated through electrical stimulation of one or more muscles. Torque τ(t) may be related to musculotendon force F_(T)(t) through the relation: τ(t)=ζ(q(t))F _(T)(t)  (6) where ζ(q(t)) represents a positive moment arm that changes with extension and movement of the body parts. The moment arm may have unique values for a given range of motion. The unique values may be considered continuously differentiable, positive, monotonic, and bounded. The unique values may also be considered to have a bounded first time derivative. The total musculotendon force may be a net sum of active forces generated by contractile, elastic, and viscous elements. The forces may have dynamic characteristics. For example, in some cases, a passive elastic element may increase with increasing muscle length. In some cases, the musculotendon force generated at the tendon may be the projection of the net sum of the elements along the line parallel to the tendon.

In some cases, the torque at the joint may be delayed. In some such cases, torque τ(t) may be represented by u(t−t_(τ)), where t_(τ) represents the electromechanical delay. The relation between the torque and musculotendon force may then be written as: u(t−t _(τ))=ζ(q(t))F _(T)(t−t _(τ))  (7)

In certain cases, the musculotendon force F_(T)(t) may be modeled as: F _(T) =F cos α(q(t))  (8) where α(q(t)) is the pennation angle between the tendon and the muscle. For example, for the human quadriceps muscle, the pennation angle may change monotonically during contraction and may be a continuously differentiable, positive, monotonic, and bounded function with a bounded first time derivative.

In some embodiments, there may be asynchronous electrical stimulation of one or more muscles. In some such cases, there may be N stimulation channels in the system. Since each channel can activate different sets of muscle units, the corresponding dynamics may be different depending on the switching signal. For example, the dynamics may be modeled as: M _(I) +M _(e) +M _(g) +M _(v)+τ_(d)=τ_(i)+τ_(i)+τ_(j)+ . . . +τ_(N)  (9) where τ_(i) and τ_(j) represent the torque produced by stimulation of the i^(th) and j^(th) subsystems, respectively. The torque produced by stimulation of the i^(th) subsystem may be related to the musculotendon force as: τ_(i)(t)=ζ_(i)(q(t))F _(T,i)(t)  (10) where musculotendon force F_(T,i)=F_(i) cos α_(i)(q) and F_(i) is the force produced by the recruited muscle in the i^(th) subsystem.

In some embodiments, the relationship between musculotendon force F_(T) and the applied stimulation V(t) can be expressed as: F _(T)(t)=η(t)V(t)  (11) where η(t) is an unknown nonlinear function that is continuously differentiable, nonzero, positive, monotonic, and bounded, with a bounded first time derivative. In this example, V(t) may represent a voltage. However, the specific form in which the stimulus is applied is not critical to the invention, and the stimulus may be applied alternatively or additionally as a current or in any other suitable form. It may, in some cases, be desirable to introduce unknown nonlinear function η(t), since it may enable the muscle contraction to be considered under general dynamic conditions in the subsequent control development. The unknown, uncertain function η(t) can capture the dynamic characteristics of muscle recruitment, muscle force-length, and muscle force-velocity relationships, as well as active and passive characteristics. If electromechanical delay is taken into account, the relation may be written as: F _(T)(t−t _(τ))=η(q(t),{dot over (q)}(t))V(t−t _(τ))  (12) to capture the latency present between the application of stimulation and production of force. Control Development

In some embodiments, a controller may enable one or more body parts coupled at a joint to track a desired trajectory q_(d)(t), where q_(d)(t) and its i^(th) derivatives q_(d) ^(i)(t) are bounded and within the range of motion of the joint for i=1, 2, 3, and 4. In some cases, desired trajectory q_(d)(t) may be based on joint kinetics and/or joint kinematics. In some embodiments, desired trajectory q_(d)(t) may be based on body part position. Alternatively, the desired trajectory may comprise continuous signals, periodic signals, step functions, and/or sinusoidal functions. In some cases, the periodic signals may have different frequencies and/or the step functions may have changes in the dynamic load.

In some embodiments, a position tracking error may be defined as: e ₁(t)=q _(d)(t)−q(t)  (13) Two filtered tracking errors e₂(t) and r(t) may be introduced to facilitate closed-loop error system development and stability analysis. Filtered tracking error e₂(t) may be expressed as: e ₂(t)

ė ₁(t)+α₁ e ₁(t)  (14) where α₁ is a positive constant control gain.

Filtered tracking error r(t) may be expressed as: r(t)

ė ₂(t)+α₂ e ₂(t)  (15) where α₂ is a positive constant control gain. In some cases, filtered tracking error r(t) may not be used in the controller due to a dependence on angular acceleration measurements.

Multiplying Equation 15 by J and using the above expressions, the following expression can be obtained: Jr=W−ΩV+τ _(d)  (16) where auxiliary signal W is defined as: W=J({umlaut over (q)} _(d)+α₁ ė ₁+α₂ e ₂)+M _(e) +M _(g) +M _(v)  (17) and auxiliary function Ω is defined as: Ω(q,t)=ζ(q(t))η(t)cos α(q(t))  (18) Multiplying Equation 16 by Ω⁻¹, the following expression can be obtained: J _(Ω) r=W _(Ω) −V+τ _(dΩ)  (19) where J_(Ω)=Ω⁻¹J, W_(Ω)=Ω⁻¹W=J_(Ω)({umlaut over (q)}_(d)+α_(i)ė₁+α₂e₂)+Ω⁻¹(M_(e)+M_(g)+M_(v)), and τ_(dΩ)=Ω⁻¹τ_(d).

In some cases, the following open-loop error system for Equation 19 may be obtained:

$\begin{matrix} {{J_{\Omega}\overset{.}{r}} = {{{- \frac{1}{2}}{\overset{.}{J}}_{\Omega}r} + N - \overset{.}{V} - e_{2}}} & (20) \end{matrix}$ where N denotes the unmeasureable auxiliary term:

$\begin{matrix} {N = {{\overset{.}{W}}_{\Omega} + e_{2} - {\frac{1}{2}{\overset{.}{J}}_{\Omega}r} + {{\overset{.}{\tau}}_{d\;\Omega}\left( {q,t} \right)}}} & (21) \end{matrix}$ In some embodiments, it may be desirable to obtain the above expressions for Equations 20 and 21 to facilitate stability analysis. Another unmeasureable auxiliary term N_(d) may be defined as:

$\begin{matrix} {{N_{d} = {{{{\overset{.}{J}}_{\Omega}\left( q_{d} \right)}{\overset{¨}{q}}_{d}} + {{J_{\Omega}\left( q_{d} \right)}{\overset{¨}{q}}_{d}} + {{\overset{.}{M}}_{e\;\Omega}\left( q_{d} \right)} + {{\overset{.}{M}}_{g\;\Omega}\left( q_{d} \right)} + {{\overset{.}{M}}_{v\;\Omega}\left( q_{d} \right)} + {{\overset{.}{\tau}}_{d\;\Omega}\left( {q_{d},\tau} \right)}}}\mspace{79mu}{where}\mspace{79mu}{{M_{e\;\Omega} = \frac{M_{e}}{\Omega}},\mspace{79mu}{M_{g\;\Omega} = \frac{M_{g}}{\Omega}},\mspace{79mu}{and}}\mspace{79mu}{M_{v\;\Omega} = {\frac{M_{v}}{\Omega}.}}} & (22) \end{matrix}$ The open-loop error system can then be expressed as:

$\begin{matrix} {{J_{\Omega}\overset{.}{r}} = {{- \overset{.}{V}} - e_{2} + \overset{\sim}{N} + N_{d} - {\frac{1}{2}{\overset{.}{J}}_{\Omega}r}}} & (23) \end{matrix}$ where unmeasureable auxiliary term Ñ(t) is defined as Ñ(t)=N−N_(d). In some cases, it may be desirable to express the open-loop error system as in Equation 23 to segregate the uncertain nonlinearities and disturbances from the model into terms that are bounded by state-dependent bounds and terms that are upper bounded by constants. For example, in certain cases, the mean value theorem may be applied to upper bound unmeasureable auxiliary term Ñ(t) by state-dependent terms as: ∥Ñ∥≤ρ(∥z∥)∥z∥  (24) where z(t)

[e₁ ^(T) e₂ ^(T) r^(T)]^(T) and ρ(∥z∥) is a positive, globally invertible, nondecreasing function. In some cases, the fact that q_(d)(t), q_(d) ^(i)(t) ∈L_(∞) ═ i=1, 2, 3, 4 can be used to upper bound N_(d) as: ∥N _(d)∥≤ζ_(N) _(d) ∥{dot over (N)} _(d)∥≤ζ_({dot over (N)}) _(d)   (25) where ζ_(N) _(d) and ζ_({dot over (N)}) _(d) are known positive constants.

Based on the joint dynamics, the control input V(t) may be designed as: V(t)

(k _(s)+1)e ₂(t)−(k _(s)+1)e ₂(0)+∫₀ ^(t)[(k _(s)+1)α₂ e ₂(τ)+βsgn(e ₂(τ))]dτ  (26) where k_(s) and β are positive constant adjustable control gains, and sgn denotes the signum function. In some cases, the time derivative of Equation 26 looks like a discontinuous sliding mode controller. Sliding mode control may be desirable because it is a method that can be used to reject the additive bounded disturbances present in the muscle dynamics (e.g., muscle spasticity, load changes, electromechanical delays) while still obtaining an asymptotic stability result. In some cases, the controller in Equation 26 can be implemented as a continuous controller (i.e., the unique integral of the sign of the error) while still yielding an asymptotic stability result. A controller using the input of Equation 26 may be referred to as a robust integral of the sign of the error (RISE) based controller. Equation 26 can ensure that all system signals are bounded under closed-loop operation. The position tracking error may be regulated in the sense that: ∥e ₁(t)∥→0 as t→0  (27) The controller may yield semi-global asymptotic tracking provided the control gain k_(s) is selected sufficiently large and β is selected according to the sufficient condition:

$\begin{matrix} {\beta > \left( {\zeta_{N_{d}} + {\frac{1}{\alpha_{2}}\zeta_{{\overset{.}{N}}_{d}}}} \right)} & (28) \end{matrix}$ The asymptotic stability can be seen in the following Lyapunov-based proof. In some cases, D is a domain in R³⁺¹ containing y(t)=0, where y(t) is defined as: y(t)

[z ^(T)√{square root over (P(t))}]^(T)  (29) and auxiliary function P(t) is defined as: P(t)

β∥e ₂(0)∥−e ₂(0)^(T) N _(d)(0)−∫₀ ^(t) L(τ)dτ.  (30) The auxiliary function L(t) can be defined as: L(t)

r ^(T)(N _(d)(t)−βsgn(e ₂)).  (31) The derivative of P(t) can be expressed as: {dot over (P)}(t)=−L(t)

−r ^(T)(N _(d)(t)−βsgn(e ₂)).  (32) The following inequality can then be obtained: ∫₀ ^(t) L(τ)dτ≤β∥e ₂(0)∥−e ₂(0)^(T) N _(d)(0).  (33) Equation 33 can be used to conclude that P(t)≥0.

In certain cases, V_(L)(y,t) can be a continuously differentiable, positive definite function defined as:

$\begin{matrix} {{V_{L}\left( {y,t} \right)}\overset{\Delta}{=}{{e_{1}^{T}e_{1}} + {\frac{1}{2}e_{2}^{T}e_{2}} + {\frac{1}{2}r^{T}J_{\Omega}r} + P}} & (34) \end{matrix}$ that satisfies the inequalities: U ₁(y)≤V _(L)(y,t)≤U ₂(y)  (35) where U₁ and U₂ are continuous, positive definite functions. The derivative of V_(L) can be expressed as: {dot over (V)} _(L)(y,t)=−(2α₁−1)e ₁ ^(T) e ₁=(α₂−1)e ₂ ^(T) e ₂ −r ^(T) r+r ^(T) Ñ−k _(s) r ^(T) r.  (36) The unique integral signum term in the RISE controller can be used to compensate for the disturbance terms included in N_(d), provided the control gain β is selected according to Equation 28. The term r^(T)(t)Ñ(e₁, e₂, r, t) can be upper bounded by: ∥rÑ∥≤ρ(∥z∥)∥z∥∥r∥  (37) to obtain: {dot over (V)} _(L)(y,t)≤−min{2α₁−1,α₂−1,1}∥z∥ ²+[ρ(∥z∥)∥z∥∥r∥−k _(s) ∥r∥ ²].  (38) Completing the squares for the bracketed terms yields:

$\begin{matrix} {{{\overset{.}{V}}_{L}\left( {y,t} \right)} \leq {{{- \min}\left\{ {{{2\alpha_{1}} - 1},{\alpha_{2} - 1},1} \right\}{z}^{2}} + {\frac{{\rho^{2}\left( {z} \right)}{z}^{2}}{4k_{s}}.}}} & (39) \end{matrix}$ The following expression can be obtained from Equation 39: {dot over (V)} _(L)(y,t)≤−U(y)  (40) where U(y) is a continuous positive definite function, provided k_(s) is selected sufficiently large based on the initial conditions of the system. The region of attraction can be made arbitrarily large to include any initial conditions by increasing the control gain k_(s) (i.e., a semi-global type of stability result). Semi-global asymptotic tracking can therefore be achieved. RISE+EMD Delay

In some embodiments, a controller may be configured to store a plurality of programs. A program may be selected and executed based on a determined user activity. In some embodiments a program may be selected based on direct user input. In other embodiments, the program may be selected based on sensing user behavior or from other context information. Some or all of the programs may implement an algorithm compensating for electromechanical delay (EMD) during neuromuscular electrical stimulation. EMD generally refers to a biological artifact that arises due to a time lag between application of electrical stimulation and tension development in a muscle, and it may cause degraded performance and instability during neuromuscular electrical stimulation. Without wishing to be bound by any particular theory, EMD may be caused at least in part by the finite propagation time of chemical ions in muscle, cross-bridge formation between actin-myosin filaments, stretching of the series elastic components in response to the external electrical input, and/or synaptic transmission delays. In some cases, EMD may vary with the input signal frequency.

In some cases, the algorithm may comprise a predictive term that actively accounts for EMD. In certain cases, filtered error signal e₂(t) may be expressed as: e ₂ =ė ₁ +αe ₁ −B∫ _(t-t) _(τ) ^(t) V(θ)dθ  (41) where α and B are known control gain constants. Auxiliary function Ω may be defined as: Ω(q,t)=ζ(q(t))η(t)  (42) where ζ(q(t))represents a positive moment arm and η(t) represents an unknown nonlinear function. The error ξ between B and J_(Ω) ⁻¹ may be defined by:

$\begin{matrix} {\xi = {B - \frac{\Omega}{J}}} & (43) \end{matrix}$ where ξ satisfies the relation |ξ|≤ξ and ξ is a known constant.

In some embodiments, the open-loop tracking error system may be developed by multiplying J_(Ω) by the time derivative of e₂ to obtain:

$\begin{matrix} {{{J_{\Omega}{\overset{.}{e}}_{2}} = {{J_{\Omega}{\overset{¨}{q}}_{d}} + M_{e\;\Omega} + M_{g\;\Omega} + M_{v\;\Omega} + \tau_{d\;\Omega} + {\alpha\; J_{\Omega}{\overset{.}{e}}_{1}} - V - {J_{\Omega}{\xi\left\lbrack {V - V_{\tau}} \right\rbrack}}}}\mspace{79mu}{where}\mspace{79mu}{{M_{e\;\Omega} = \frac{M_{e}}{\Omega}},\mspace{79mu}{M_{g\;\Omega} = \frac{M_{g}}{\Omega}},\mspace{79mu}{and}}\mspace{79mu}{M_{v\;\Omega} = {\frac{M_{v}}{\Omega}.}}} & (44) \end{matrix}$ In some such embodiments, auxiliary term N_(d) can be defined as: N _(d) =J _(Ωd) {umlaut over (q)} _(d) +M _(vΩd) +M _(gΩd) +M _(eΩd)  (45) where the notation J_(Ωd), M_(eΩd), M_(gΩd), and M_(vΩd) represent J_(Ω), M_(eΩ), M_(gΩ), and M_(vΩ) expressed in terms of desired limb position and velocity.

In some embodiments, control input V(t) may be expressed as: V=k _(b) e ₂  (46) where k_(b) is a known control gain that can be expanded as k_(b)=k_(b) ₁ +k_(b) ₂ +k_(b) ₃ , and k_(b) ₁ , k_(b) ₂ , and k_(b) ₃ are known constants.

In certain cases, the closed-loop error system can be determined by adding and subtracting auxiliary term N_(d) to J_(Ω)ė₂ and using other relations to arrive at:

$\begin{matrix} {{J_{\Omega}{\overset{.}{e}}_{2}} = {{{- \frac{1}{2}}{\overset{.}{J}}_{\Omega}e_{2}} + \overset{\sim}{N} + S - e_{1} - {k_{b}e_{2}} - {k_{b}J_{\Omega}{\xi\left\lbrack {e_{2} - e_{2\tau}} \right\rbrack}}}} & (47) \end{matrix}$ where the auxiliary terms Ñ, N, and S are defined as:

$\begin{matrix} {N = {{\frac{1}{2}{\overset{.}{J}}_{\Omega}e_{2}} + {J_{\Omega}{\overset{¨}{q}}_{d}} + M_{e\;\Omega} + M_{g\;\Omega} + M_{v\;\Omega} + {\alpha\; J_{\Omega}e_{2}} - {\alpha^{2}J_{\Omega}e_{1}} + e_{1} + {\alpha\; J_{\Omega}B{\int_{t - t_{\tau}}^{t}{{V(\theta)}\ d\;\theta}}}}} & (48) \\ {\mspace{79mu}{\overset{\sim}{N} = {N - N_{d}}}} & (49) \\ {\mspace{79mu}{S = {N_{d} + d_{\Omega}}}} & (50) \end{matrix}$ where Ñ can be upper bounded as: Ñ≤ρ(∥z∥)∥z∥  (51) where ρ(∥z∥) is a positive, globally invertible, nondecreasing function and z is defined as z=[e₁ e₂ e_(z)]^(T), where e_(z) is defined as: e _(z)=∫_(t-τ) ^(t) V(θ)dθ  (52) S can be upper bounded as: ∥S∥≤∈  (53) where ∈ is a known constant.

Lyapunov-Karsovskii functionals P and Q can be defined as: P=ω∫ _(t-t) _(τ) ^(t)(∫_(s) ^(t) V(θ)² dθ)ds  (54)

$\begin{matrix} {Q = {\frac{\overset{\_}{\xi}J_{2}k_{b}}{2}{\int_{t - t_{\tau}}^{t}{{e_{2}(\theta)}^{2}\ d\;\theta}}}} & (55) \end{matrix}$ where ω is a known constant.

The controller given in Equation 46 can ensure semi-global uniformly ultimately bounded tracking: |e ₁(t)|≤∈₀ exp(−∈₁ t)+∈₂  (56) where ∈₀, ∈₁, and ∈₂ are constants, provided control gains α and k_(b) are selected according to sufficient conditions:

$\begin{matrix} {{\alpha > \frac{B^{2}\tau}{2\omega}},{k_{b_{3}} > \frac{{2\overset{\_}{\xi}{J_{2}\left( {k_{b_{1}} + k_{b_{2}}} \right)}} + {\omega\; k_{b}^{2}\tau}}{1 - {2\overset{\_}{\xi}J_{2}}}}} & (57) \end{matrix}$ The sufficient condition for k_(b) ₃ can be satisfied by selecting ω, k_(b) ₁ , and k_(b) ₂ sufficiently small and k_(b) ₃ sufficiently large, provided 1−2ξJ₂>0. RISE+Neural Network

In some embodiments, the controller comprises a neural network (NN) based feed forward controller that is augmented with a continuous robust feedback term to yield an asymptotic result despite an uncertain, nonlinear muscle response. Such a controller may be implemented as part of a program or in any other suitable way. In some cases, it may be desirable to use NN-based controllers with an adaptive element that can adjust to unstructured, nonlinear disturbances in the muscle model. Use of NN-based controllers may, in some cases, reduce the tracking error for a given stimulation input. The ability of neural networks to learn uncertain and unknown muscle dynamics may be complemented by the ability of RISE to compensate for additive system disturbances and NN approximation error.

In some cases, the open-loop tracking error system may be developed by multiplying the expression for filtered tracking error r(t) in Equation 15 by J/Ω to obtain: J _(Ω) r=J _(Ω)(α₂ e ₂+α₁ ė ₁ +{umlaut over (q)} _(d))+M _(eΩ) +M _(gΩ) +M _(vΩ) −V+τ _(dΩ)  (58) Equation 58 may be rewritten as: J _(Ω) r=ƒ _(d) +S−V+τ _(dΩ)  (59) where ƒ_(d) may be defined as: ƒ_(d) =M _(eΩd) +M _(gΩd) +M _(vΩd) +J _(Ωd) {umlaut over (q)} _(d)  (60) and S may be defined as: S=J _(Ω)(α₂ e ₂+α₁ ė ₁)+J _(Ω) {umlaut over (q)} _(d) −J _(Ωd) {umlaut over (q)} _(d) +M _(eΩ) +M _(gΩ) +M _(vΩ)−(M _(eΩd) +M _(gΩd) +M _(vΩd))  (61)

In some embodiments, S may be a compact, simply connected set of R⁴, and C(S) may be defined as the space where ƒ_(d) is continuous. In some such embodiments, there exist weights and thresholds such that the function ƒ_(d) may be represented by a three-layer neural network as: ƒ_(d) =W ^(T)σ(U ^(T) x _(d))+∈(x _(d))  (62) where x_(d)(t)=[1 q_(d)(t) {dot over (q)}_(d)(t) {umlaut over (q)}_(d)(t)]^(T). U∈R^(4×N) ¹ and W∈R^(N) ¹ ⁺¹ are bounded constant ideal weight matrices for the first-to-second and second-to-third layers, respectively, where N₁ is the number of neurons in the hidden layer. σ is the sigmoid activation function σ(·): R⁴→R^(N) ¹ ⁺¹, and ∈(x_(d)) is the functional reconstruction error. In some cases, the additional term “1” in the input vector x_(d) and activation term σ may allow for thresholds to be included as the first columns of the weight matrices, such that any estimation of W and U includes estimation of the thresholds. In some cases, a three-layer NN approximation for ƒ_(d) may be given as: {circumflex over (ƒ)} _(d) =Ŵ ^(T)σ(Û ^(T) x _(d))  (63) where Ŵ(t) and Û(t) are estimates of the ideal weight matrices. The estimate mismatches may be defined as Ũ=U−Û and {tilde over (W)}=W−Ŵ. The mismatch for the hidden-layer output error may be defined as: {tilde over (σ)}=σ−{circumflex over (σ)}=σ(U ^(T) x _(d))−σ(Û ^(T) x _(d))  (64) The ideal weights may be assumed to exist and to be bounded by positive values such that: ∥U∥ _(F) ² =tr(U ^(T) U)=vec(U)^(T) vec(U)≤Ū _(B)  (65) ∥W∥ _(F) ² =tr(W ^(T) W)=vec(W)^(T) vec(W)≤ W _(B)  (66) where ∥·∥_(F) is the Frobenius norm of a matrix and tr (·) is the trace of a matrix.

Based on the assumption that the desired trajectory is bounded, the following inequalities may hold: |∈(x _(d))|∈_(b) ₁ |∈({dot over (x)} _(d))|≤∈_(b) ₂ |∈({umlaut over (x)} _(d))|≤∈_(b) ₃   (67) where ∈_(b) ₁ , ∈_(b) ₂ , and ∈_(b) ₃ are known positive constants.

In some embodiments, a closed-loop error system may be developed. In some cases, the NN structure may be developed in terms of the desired trajectories. This may be desirable, in certain cases, in order to avoid the use of acceleration measurements. In some cases, strategic separation and regrouping of terms may be needed to overcome the challenge that while the NN estimates may be upper bounded by constants, the time derivatives of the terms may be state-dependent.

In some cases, the control input may be: V={circumflex over (ƒ)} _(d)+μ  (68) where μ is the RISE feedback term defined as: μ

(k _(s)+1)e ₂(t)−(k _(s)+1)e ₂(0)+v  (69) where k_(s) is a positive constant adjustable control gain and v(t) is the generalized solution to: {dot over (v)}=(k _(s)+1)α₂ e ₂(t)+β₁ sgn(e ₂(t)),v(0)=0  (70) where β₁ is a positive constant adjustable control gain. The estimates for the NN weights may be generated using a projection algorithm as: {circumflex over ({dot over (W)})}=proj(Γ₁ {circumflex over (σ)}′Û ^(T) {dot over (x)} _(d) e ₂ ^(T))  (71) {circumflex over ({dot over (U)})}=proj(Γ₂ {dot over (x)} _(d)({circumflex over (σ)}′^(T) Ŵe ₂)^(T))  (72) where Γ₁ and Γ₂ are constant, positive definite, symmetric gain matrices. It should be noted that the expressions for estimated NN weights may vary depending on the desired tasks and other characteristics of the controller.

The NN-based feedforward component {circumflex over (ƒ)}_(d) may be used to approximate the desired musculoskeletal dynamics ƒ_(d). The NN component may approximate the desired function through adaptive weight estimates that are adjusted online via the adaptive law given in Equations 71 and 72. In some cases, the RISE feedback controller μ(t) has implicit learning characteristics that maintain the robustness of the system in the presence of additive disturbances and residual function approximation error. One role of the RISE feedback controller may be to keep the system stable while the NN approximates the system dynamics.

The closed-loop tracking error system may be developed by substituting Equation 68 into Equation 59 as: J _(Ω) r={tilde over (ƒ)} _(d) +S−μ+τ _(dΩ)  (73) where {tilde over (ƒ)}_(d)=ƒ_(d)−{circumflex over (ƒ)}_(d).

To facilitate subsequent closed-loop stability analysis, the time derivative of Equation 73 may be determined as: J _(Ω) {dot over (r)}=−{dot over (J)} _(Ω) r+{circumflex over ({dot over (ƒ)})} _(d) +{dot over (S)}−{dot over (μ)}+{dot over (τ)} _(dΩ)  (74) Although the control input V(t) is present in the open-loop error system, an additional derivative may be taken to facilitate the design of the RISE-based feedback controller. The closed-loop system may be expressed as:

$\begin{matrix} {{{J_{\Omega}\overset{.}{r}} = {{{- {\overset{.}{J}}_{\Omega}}r} + {W^{T}{\sigma^{\prime}\left( {U^{T}x_{d}} \right)}U^{T}{\overset{.}{x}}_{d}} - {{\overset{.}{\hat{W}}}^{T}{\sigma\left( {{\hat{U}}^{T}x_{d}} \right)}} - {{\hat{W}}^{T}{\sigma^{\prime}\left( {{\hat{U}}^{T}x_{d}} \right)}{\hat{U}}^{T}{\overset{.}{x}}_{d}} - {{\hat{W}}^{T}{\sigma^{\prime}\left( {{\hat{U}}^{T}x_{d}} \right)}{\overset{.}{\hat{U}}}^{T}x_{d}} + {\overset{.}{\epsilon}\left( x_{d} \right)} + \overset{.}{S} - \overset{.}{\mu} + {\overset{.}{\tau}}_{d\;\Omega}}}\mspace{20mu}{where}\mspace{20mu}{{\sigma^{\prime}\left( {{\hat{U}}^{T}x_{d}} \right)} = \left. \frac{d\;{\sigma\left( {U^{T}x_{d}} \right)}}{d\left( {U^{T}x_{d}} \right)} \middle| {}_{{U^{T}x_{d}} = {{\hat{U}}^{T}x_{d}}}. \right.}} & (75) \end{matrix}$ The following expression may then be obtained: J _(Ω) {dot over (r)}=−{dot over (j)} _(Ω) r+Ŵ ^(T) {circumflex over (σ)}′Ũ ^(T) {dot over (x)} _(d) −{tilde over (W)} ^(T) {circumflex over (σ)}′Û ^(T) {dot over (x)} _(d) −Ŵ ^(T) {circumflex over (σ)}′Ũ ^(T) {dot over (x)} _(d) −W ^(T) {circumflex over (σ)}′Û ^(T) {dot over (x)} _(d) +W ^(T) σ′U ^(T) {dot over (x)} _(d) +{dot over (∈)}(x _(d))−Ŵ ^(T) {circumflex over (σ)}′{circumflex over ({dot over (U)})} ^(T) x _(d) −{circumflex over ({dot over (W)})} ^(T) {circumflex over (σ)}+{dot over (S)}−{dot over (μ)}+{dot over (σ)} _(dΩ)  (76) Using the NN weight tuning laws, the expression may be rewritten as:

$\begin{matrix} {{J_{\Omega}\overset{.}{r}} = {{{- \frac{1}{2}}{\overset{.}{J}}_{\Omega}r} + \overset{\sim}{N} + N - e_{2} - {\left( {k_{s} + 1} \right)r} - {\beta\;{{sgn}\left( e_{2} \right)}}}} & (77) \end{matrix}$ where unmeasurable auxiliary term Ñ may be defined as:

$\begin{matrix} {\overset{\sim}{N} = {{{- \frac{1}{2}}{\overset{.}{J}}_{\Omega}r} + \overset{.}{S} + e_{2} - {{{proj}\left( {\Gamma_{1}{\hat{\sigma}}^{\prime}{\hat{U}}^{T}{\overset{.}{x}}_{d}e_{2}^{T}} \right)}^{T}\hat{\sigma}} - {{\hat{W}}^{T}{\hat{\sigma}}^{\prime}{{proj}\left( {\Gamma_{2}{{\overset{.}{x}}_{d}\left( {{\hat{\sigma}}^{\prime\; T}\hat{W}e_{2}} \right)}^{T}} \right)}^{T}x_{d}}}} & (78) \end{matrix}$ and unmeasurable auxiliary term N may be defined as: N=N _(B) +N _(d)  (79) N_(d) may be defined as: N _(d) =W ^(T) σ′U ^(T) {dot over (x)} _(d)+{dot over (∈)}(x _(d))+{dot over (τ)}_(dΩ)  (80) and N_(B) may be defined as: N _(B) =N _(B) ₁ +N _(B) ₂   (81) where N_(B) ₁ and N_(B) ₂ may be given by: N _(B) ₁ =−Ŵ ^(T){circumflex over (σ)}′{tilde over (σ)}^(T) {dot over (x)} _(d) −W ^(T) {circumflex over (σ)}′Û′ ^(T) {dot over (x)} _(d)  (82) N _(B) ₂ =Ŵ ^(T) {circumflex over (σ)}′Û ^(T) {dot over (x)} _(d) +{tilde over (W)} ^(T) {circumflex over (σ)}′Û ^(T) {dot over (x)} _(d)  (83) In some cases, it may be desirable to define the terms in such a way in order to segregate terms that are bounded by state-dependent bounds and terms that are upper bounded by constants for the development of the NN weight update laws and the subsequent stability analysis. The auxiliary term N_(B) may be further segregated to develop gain conditions in the stability analysis. The mean value theorem may be applied to upper bound Ñ as: |Ñ|≤ρ(∥z∥)∥z∥  (84) where z

[e₁ e₂ r]^(T) and the bounding function ρ(∥z∥) is a positive, globally invertible, nondecreasing function. The following inequalities may be developed: |N _(d)|≤ζ₁ , |N _(B)|≤ζ₂ , |{dot over (N)} _(d)|≤ζ₃, and |{dot over (N)} _(B)|≤ζ₄+ζ₅ |e ₂|  (85) where ζ_(i) for i=1, 2, . . . 5 are positive known constants.

The composite NN and RISE controller can ensure that all system signals are bounded under closed-loop operation and that the position tracking error is regulated in the sense that: |e ₁(t)|→0 as t→∞  (86) provided the control gains are selected according to the following sufficient conditions:

$\begin{matrix} {{{\alpha_{1} > \frac{1}{2}},{\alpha_{2} > {\beta_{2} + 1}}}{{\beta_{1} > {\zeta_{1} + \zeta_{2} + {\frac{1}{\alpha_{2}}\zeta_{3}} + {\frac{1}{\alpha_{2}}\zeta_{4}}}},{\beta_{2} > \zeta_{5}}}} & (87) \end{matrix}$ and control gain k_(s) is selected sufficiently large based on the initial conditions of the error system. Asynchronous Stimulation

NMES can sometimes lead to early onset of muscle fatigue during stimulation, limiting the duration that functional tasks can be performed in assistive devices. In some embodiments, a controller may apply asynchronous stimulation, which may reduce NMES-induced fatigue. Asynchronous stimulation generally refers to use of multiple stimulation channels and electrodes to target different muscles or different groups of motor units within a given muscle. Without wishing to be bound by a particular theory, asynchronous stimulation may lead to lower rates of fatigue due to reduced duty cycle (i.e., a lower average stimulation frequency) for the recruited motor units compared to conventional stimulation.

In some cases, switching between different muscles may introduce discontinuities in the open-loop dynamics. These discontinuities may be a consequence of the fact that the response to a given stimulus will differ for each subsystem (i.e., each subsystem activates a different number and/or type of muscle fibers). In certain embodiments, pulses may be delivered in an interleaved fashion to each stimulation channel. Utilizing interleaved pulses rather than sequentially delivering pulse trains may be advantageous, in some cases, at least in part because interleaving the pulses across the stimulation channels may provide an averaging effect due to the temporal summation of the force. The extent of the averaging effect may depend upon the stimulation frequency; higher stimulation frequencies may smooth the force output, but a primary motivation for utilizing interleaved pulses is to achieve decreased rates of fatigue through the use of low frequency stimulation.

As suggested by Equation 9 above, the joint dynamics during stimulation of two subsystems may be modeled as: M _(I) +M _(e) +M _(g) +M _(v)+τ_(d)=τ_(i)+τ_(j)  (88) τ_(i) and τ_(j) represent the torque produced by stimulation of the i^(th) and j^(th) subsystems, and the inertial, gravitational, elastic, and viscous components are common to all subsystems since all subsystems act on the same joint. The unknown bounded disturbance torque τ_(d) may also be modeled as being common to all subsystems.

In some cases, the open-loop dynamics for asynchronous stimulation may be obtained as: Jr=W−τ _(i)−τ_(j)+τ_(d) , i≠j  (89) where J is the same inertia for each subsystem since each subsystem acts on the same joint complex. W (ė₁, e₂, t) denotes an auxiliary term defined as in Equation 17. The open-loop dynamics may be expressed as: Jr=W−V _(i)Ω_(i) −V _(j)Ω_(j)+τ_(d)  (90) where V_(i) denotes the stimulation applied to the i^(th) subsystem by electrical stimulation, and Ω_(i) is a positive auxiliary term that relates the stimulation applied to the i^(th) subsystem to the torque produced by the i^(th) subsystem, defined as: Ω_(i)

ζ_(i)η_(i) cos a _(i)(q)  (91) The first time derivative of Ω_(i) is continuous and bounded, and the second time derivative of Ω_(i) is bounded. In some cases, σ may denote a piecewise constant signal that selects the subsystem to be activated at time t. The instances when the value of σ changes are called the switching times, t_(i). Immediately following each switching time, there may be a transition period Δt during which the input is transitioned from one subsystem to another. To facilitate the subsequent analysis, the closed-loop dynamics of the switched system and the Lyapunov candidate function may be made continuous through the signal X(t), where X is designed such that the transition period from one subsystem to another results in a continuous torque output due to stimulation. X denotes the percentage of the input delivered to one of the two selected subsystems, and the remaining percentage of the input (1−X), is delivered to the other subsystem. V(t) can denote the input to the system such that V=V_(i)+V_(j), where V _(i) =XV, V _(j)=(1−X)V.  (92)

The closed loop dynamics may be expressed as: Jr=W−VΩ ₁+τ_(d) , t ₀ ≤t<t ₁ Jr=W−XVΩ ₁−(1−X)VΩ ₂+τ_(d) , t ₁ ≤t<t ₂ Jr=W−XVΩ ₃−(1−X)VΩ ₂+τ_(d) , t ₂ ≤t<t ₃ Jr=W−XVΩ ₃−(1−X)VΩ ₄+τ_(d) , t ₃ ≤t<t ₄  (93) In some cases, an example definition of X may be given by:

$\begin{matrix} {X\overset{\Delta}{=}\left\{ \begin{matrix} {\frac{1 - {\sin\left( {{\alpha\left( {t - t_{{2\; k} - 1}} \right)} - \frac{\pi}{2}} \right)}}{2},} & {t \in \left\lbrack {t_{{2\; k} - 1},{t_{{2\; k} - 1} + {\Delta\; t}}} \right)} \\ {0,} & {t \in \left\lbrack {{t_{{2\; k} - 1} + {\Delta\; t}},t_{2\; k}} \right)} \\ {\frac{1 + {\sin\left( {{\alpha\left( {t - t_{{2\; k} - 1}} \right)} - \frac{\pi}{2}} \right)}}{2},} & {t \in \left\lbrack {t_{2\; k},{t_{2\; k} + {\Delta\; t}}} \right)} \\ {1,} & {t \in {\left\lbrack {t_{0},t_{1}} \right)\bigcup\left\lbrack {{t_{2\; k} + {\Delta\; t}},t_{{2\; k} + 1}} \right)}} \end{matrix} \right.} & (94) \end{matrix}$ where X and its first time derivative are bounded and continuous and the second time derivative is bounded. The transition period in Equation 94 is defined as

${\Delta\; t}\overset{\Delta}{=}\frac{\pi}{a}$ and may be made arbitrarily short through the choice of a.

In some cases, it may be desirable to obtain the time derivative of Equation 93 to facilitate stability analysis. The time derivative may be expressed as:

$\begin{matrix} {{J\overset{.}{r}} = {{{- \frac{1}{2}}\overset{.}{J}r} + \overset{\sim}{N} + N_{d\; 1} - e_{2} + \left\lbrack {{XN}_{{d\; 2},i} + {\left( {1 - X} \right)N_{{d\; 2},j}}} \right\rbrack - {\quad{{\left\lbrack {{X\;\Omega_{i}} + {\left( {1 - X} \right)\Omega_{j}}} \right\rbrack\overset{.}{V}} + {\left\lbrack {{\overset{.}{X}N_{{d\; 3},i}} - {\overset{.}{X}N_{{d\; 3},j}}} \right\rbrack V}}}}} & (95) \end{matrix}$ where the following auxiliary terms may be defined as:

$\begin{matrix} {N\overset{\Delta}{=}{\overset{.}{W} + e_{2} - \left( {\frac{1}{2}\overset{.}{J}} \right)_{r} + {\overset{.}{\tau}}_{d}}} & (96) \\ {N_{d\; 1}\overset{\Delta}{=}{{\overset{.}{J}{\overset{¨}{q}}_{d}} + {J{\overset{...}{q}}_{d}} + {\overset{.}{M}}_{e} + {\overset{.}{M}}_{g} + {\overset{.}{M}}_{v} + {\overset{.}{\tau}}_{d}}} & (97) \\ {N_{{d\; 2},i}\overset{\Delta}{=}{{- {\overset{.}{\Omega}}_{i}}V}} & (98) \\ {N_{{d\; 3},i}\overset{\Delta}{=}{- \Omega_{i}}} & (99) \\ {\overset{\sim}{N}\overset{\Delta}{=}{N - {N_{d\; 1}.}}} & (100) \end{matrix}$ In some cases, it may be desirable to express the open-loop error system as in Equation 95 to separate the model into groups that are bounded by state-dependent bounds or by constants. By applying the Mean Value Theorem, Ñ may be upper bounded by state-dependent terms as: |Ñ|≤ρ(∥z∥)∥z∥  (101) where z(t)

[e₁ ^(T) e₂ ^(T) r^(T)]^(T) and ρ(∥z∥) is a positive, globally invertible, nondecreasing function. The desired trajectory may be used to prove the upper bounds: |N _(d1)|≤ζ_(N) _(d1)   (102) |{dot over (N)} _(d1)|≤ζ_({dot over (N)}) _(d1)   (103) |N _(d2,i)|≤ρ_(N) _(d2,i) (∥z∥)|V(t)|  (104) |{dot over (N)} _(d2,i)|≤ρ_(1,{dot over (N)}) _(d2,i) (∥z∥)|V(t)|+ρ_(2,{dot over (N)}) _(d2,i) (∥z∥)  (105) |N _(d3,i)|≤ρ_(N) _(d3,i) (∥z∥)  (106) |{dot over (N)} _(d3,i)|≤ρ_({dot over (N)}) _(d3,i) (∥z∥)  (107) where ζ_(N) _(d1) and ζ_({dot over (N)}) _(d1) are known positive constants and ρ_(N) _(2d,i) (∥z∥), ρ_(1,{dot over (N)}) _(d2,i) (∥z∥), ρ_(2,{dot over (N)}) _(d2,i) (∥z∥), ρ_(N) _(d3,i) (∥z∥), and ρ_({dot over (N)}) _(d3,i) (∥z∥) are positive, globally invertible, nondecreasing functions.

To facilitate stability analysis, Equation 95 may be expressed as:

$\begin{matrix} {{J\overset{.}{r}} = {{{- \frac{1}{2}}\overset{.}{J}r} + \overset{\sim}{N} + N_{d\; 1} - e_{2} + {\overset{\_}{N}}_{d\; 2} - {\overset{\_}{\Omega}\overset{.}{V}} + {\overset{.}{X}{\overset{\_}{N}}_{d\; 3}V}}} & (108) \end{matrix}$ where N _(d2), Ω, and N _(d3) are continuous functions defined as: N _(d2)

[XN _(d2,i)+(1−X)N _(d2,i)]  (109) N _(d3)

[N _(d3,i) −N _(d3,j)]  (110) Ω

[XΩ _(i)+(1−X)Ω_(j)]  (111) The auxiliary terms may be bounded as: | N _(d2)|≤ρ _(N) _(d2) (∥z∥)|V(t)|  (112) | {dot over (N)} _(d2)|≤ρ_(1,{dot over (N)}) _(d2) (∥z∥)|V(t)|+ρ_(2,{dot over (N)}) _(d2) (∥z∥)  (113) | N _(d3)|≤ρ _(N) _(d3) (∥z∥)|V(t)|  (114) | {dot over (N)} _(d3)|≤ρ _({dot over (N)}) _(d3) (∥z∥)  (115) ∥Ω|≤ρ _(Ω(∥) z∥)  (116) |{dot over (Ω)}|≤ρ _({dot over (Ω)}) (∥z∥).  (117)

The RISE-based voltage controller may be designed as:

$\begin{matrix} {{V(t)}\overset{\Delta}{=}{{\frac{1}{\epsilon}\left( {k_{s} + 1} \right)\left( {{e_{2}(t)} - {e_{2}(0)}} \right)} + {v(t)}}} & (118) \end{matrix}$ where v(t) is the generalized Fillipov solution to

$\begin{matrix} {{\overset{.}{v}(t)} = {{\frac{1}{\epsilon}\left( {k_{s} + 1} \right)\alpha_{2}{e_{2}(t)}} + {\left( {\beta + {\beta_{V}{V}}} \right){{sgn}\left( {e_{2}(t)} \right)}}}} & (119) \end{matrix}$ where α₂, k_(s), β, β_(V) are positive, constant control gains.

In some cases, the designed switching signal σ may have a finite number of discontinuities on any bounded time interval. Any two consecutive switching times, t_(i) and t_(i+1), may satisfy t_(i)+Δt<t_(i+1), and the switching signal may remain constant for t∈[t_(i), t_(i+1)).

The controller designed in Equation 108 may yield semi-global asymptotic tracking in the sense that |e₁(t)|→0 as t→∞ under any switching signal satisfying the condition above, provided that the control gains α₁, α₂, k_(s), β, β_(V) are selected according to the sufficient conditions:

$\begin{matrix} {\mspace{79mu}{{\alpha_{1} > \frac{1}{2}},{k_{s} > \frac{\rho^{2}{{y(0)}}}{4\lambda}}}} & (120) \\ {\mspace{79mu}{\beta_{V} > {\max_{i \in S}\left\{ \left. {\frac{1}{\epsilon}\left\lbrack {\rho_{N_{{d\; 2},i}} + {\left( \frac{\alpha}{2} \right)\rho\; N_{{d\; 3},i}} + 1} \right\rbrack} \right|_{{z} = {{y{(0)}}}} \right\}}}} & (121) \\ {\mspace{79mu}{\beta > {\frac{1}{\epsilon}\left\lbrack {\zeta_{N_{d\; 1}} + 1} \right\rbrack}}} & (122) \\ {\alpha_{2} > {\max\left\{ {\left. \left\lbrack {\rho_{1,{\overset{.}{\overset{\_}{N}}}_{d\; 2}} + {\rho_{2,{\overset{.}{\overset{\_}{N}}}_{d\; 2}}\beta_{V}} + {\rho_{\overset{\_}{\Omega}}\beta_{V}^{2}} + {\rho_{\overset{.}{\overset{\_}{\Omega}}}\beta_{V}} + {\left( \frac{\alpha}{2} \right){\rho_{{\overset{\_}{N}}_{d\; 3}}\left\lbrack {1 + \alpha + \beta_{V}} \right\rbrack}} + {\left( \frac{\alpha}{2} \right)\rho_{{\overset{.}{\overset{\_}{N}}}_{d\; 3}}}} \right\rbrack \right|_{{z} = {{y{(0)}}}},\left. \quad{\left. \left\lbrack {\zeta_{{\overset{.}{N}}_{d\; 1}} + {\left( {\rho_{\overset{.}{\overset{\_}{\Omega}}} + \rho_{2,{\overset{.}{\overset{\_}{N}}}_{d\; 2}} + {\rho_{\overset{\_}{\Omega}}\beta_{V}} + {\left( \frac{\alpha}{2} \right)\rho_{{\overset{\_}{N}}_{d\; 3}}}} \right)\beta} + {\frac{1}{\epsilon}\left( {k_{s} + 1} \right){{y(0)}}\left( {\rho_{2,{\overset{.}{\overset{\_}{N}}}_{d\; 2}} + {\rho_{\overset{\_}{\Omega}}\beta_{V}} + {\left( \frac{\alpha}{2} \right)\rho_{{\overset{\_}{N}}_{d\; 3}}}} \right)}} \right\rbrack \right|_{{z} = {{y{(0)}}}},2} \right\}} \right.}} & (123) \end{matrix}$ where λ

min{2α₁−1, α₂−1, 1}.

In some embodiments, the neural network may be used to estimate acceleration of a limb. A controller using such a neural network can achieve a controller using only position and velocity information.

While several embodiments of the present invention have been described and illustrated herein, those of ordinary skill in the art will readily envision a variety of other means and/or structures for performing the functions and/or obtaining the results and/or one or more of the advantages described herein, and each of such variations and/or modifications is deemed to be within the scope of the present invention. For example, various controllers and control algorithms were described. These controllers and control algorithms may be used together or separately, in any suitable combination. Those controllers and algorithms may be implemented in any suitable way, including as programs, stored in a computer readable medium, executed by a microcontroller or other suitable processing circuitry (such as an ASIC, FPGA or the like). When used together, these controllers may be implemented separately, with one serving to provide inputs to, or process outputs from, the other. Alternatively, they may be combined mathematically or logically, such that control equations, representing the combined controllers and algorithms, are derived before programming or implementation in control circuitry. More generally, those skilled in the art will readily appreciate that all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings of the present invention is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific embodiments of the invention described herein. It is, therefore, to be understood that the foregoing embodiments are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, the invention may be practiced otherwise than as specifically described and claimed. The present invention is directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the scope of the present invention.

All definitions, as defined and used herein, should be understood to control over dictionary definitions, definitions in documents incorporated by reference, and/or ordinary meanings of the defined terms.

The indefinite articles “a” and “an,” as used herein in the specification and in the claims, unless clearly indicated to the contrary, should be understood to mean “at least one.”

The phrase “and/or,” as used herein in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising,” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.

As used herein in the specification and in the claims, “or” should be understood to have the same meaning as “and/or” as defined above. For example, when separating items in a list, “or” or “and/or” shall be interpreted as being inclusive, i.e., the inclusion of at least one, but also including more than one, of a number or list of elements, and, optionally, additional unlisted items. Only terms clearly indicated to the contrary, such as “only one of” or “exactly one of,” or, when used in the claims, “consisting of,” will refer to the inclusion of exactly one element of a number or list of elements. In general, the term “or” as used herein shall only be interpreted as indicating exclusive alternatives (i.e. “one or the other but not both”) when preceded by terms of exclusivity, such as “either,” “one of,” “only one of,” or “exactly one of.” “Consisting essentially of,” when used in the claims, shall have its ordinary meaning as used in the field of patent law.

As used herein in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.

It should also be understood that, unless clearly indicated to the contrary, in any methods claimed herein that include more than one step or act, the order of the steps or acts of the method is not necessarily limited to the order in which the steps or acts of the method are recited.

In the claims, as well as in the specification above, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “composed of,” and the like are to be understood to be open-ended, i.e., to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of” shall be closed or semi-closed transitional phrases, respectively, as set forth in the United States Patent Office Manual of Patent Examining Procedures, Section 2111.03. 

What is claimed is:
 1. An orthotic device, comprising: one or more sensors; one or more electrodes; one or more elastic resistance elements configured to provide a resistance force or a compressive force against at least one body part of a person; and a nonlinear controller configured to: receive input signals from the one or more sensors, determine a current configuration of the orthotic device from a plurality of possible configurations of the orthotic device, the plurality of possible configurations of the orthotic device comprising a sitting configuration, a standing configuration, and a walking configuration, determine, using the one or more sensors, a range of motion and a desired trajectory associated with the at least one body part of the person, determine, using information associated with the range of motion, information associated with the desired trajectory, and information associated with the resistance force or the compressive force provided by the one or more elastic resistance elements, an amount of electrical stimulation to apply to the at least one body part of the person, and deliver said amount of electrical stimulation to the at least one body part of the person via at least one electrode.
 2. The orthotic device of claim 1, wherein at least one of the sensors is an electrogoniometer configured to measure the angle between a first body part of a person and a second body part of a person coupled at a joint.
 3. The orthotic device of claim 1, wherein at least one of the electrodes is configured to apply electrical stimulation to one or more body parts of a person.
 4. The orthotic device of claim 1, wherein the controller generates the output signals as a nonlinear function of the input signals based at least in part on a determined parameter indicative of muscle fatigue.
 5. An orthotic device, comprising: a bracing element configured to attach to a limb of a person; one or more sensors configured to measure the angle between a first body part of the person and a second body part of the person coupled at a joint; one or more electrodes configured to apply electrical stimulation to one or more body parts of the person; one or more elastic resistance elements coupled to said bracing element and configured to provide a resistance force or a compressive force against at least one of the first body part and the second body part of the person; and a nonlinear controller configured to: receive input signals from the one or more sensors, determine a current configuration of the orthotic device from a plurality of possible configurations of the orthotic device, the plurality of possible configurations of the orthotic device comprising a sitting configuration, a standing configuration, and a walking configuration, determine, using the one or more sensors, a range of motion and a desired trajectory associated with the at least one body part of the person, determine, using information associated with the range of motion, information associated with the desired trajectory, and information associated with the resistance force or the compressive force provided by the one or more elastic resistance elements, an amount of electrical stimulation to apply to the at least one body part of the person, and deliver said amount of electrical stimulation to the at least one body part of the person via at least one electrode.
 6. The orthotic device of claim 5, wherein the nonlinear controller is configured to store at least one program.
 7. The orthotic device of claim 6, wherein the at least one program corresponds to a functional activity.
 8. The orthotic device of claim 7, wherein the activity comprises standing.
 9. The orthotic device of claim 7, wherein the activity comprises walking.
 10. The orthotic device of claim 6, wherein the program implements a control method that modulates the amplitude of the output signals.
 11. The orthotic device of claim 6, wherein the program implements a control method that modulates the frequency of the output signals.
 12. The orthotic device of claim 6, wherein the program implements a control method based at least in part on a value of a parameter indicative of muscle fatigue.
 13. The orthotic device of claim 5, comprising at least two electrodes, wherein the nonlinear controller is configured to deliver interleaved output signals to the at least two electrodes.
 14. The orthotic device of claim 5, wherein the controller is configured to record data from previous activities.
 15. The orthotic device of claim 5, further comprising one or more elastic resistance elements, wherein at least one elastic resistance element comprises a spring and/or an elastic band.
 16. The orthotic device of claim 5, further comprising a battery.
 17. The orthotic device of claim 5, further comprising one or more sensors configured to measure velocity of the joint.
 18. A method of providing functional electrical stimulation to a person, comprising: receiving signals from at least one sensor; determining a current configuration of an orthotic device from a plurality of possible configurations of said orthotic device, the plurality of possible configurations of the orthotic device comprising a sitting configuration, a standing configuration, and a walking configuration, the orthotic device comprising one or more elastic resistance elements configured to provide a resistance force or a compressive force against at least one body part of the person; determining, using said at least one sensor, a range of motion and a desired trajectory associated with the at least one body part of the person; determining, using information associated with the range of motion, information associated with the desired trajectory, and information associated with the resistance force or the compressive force provided by the one or more elastic resistance elements, an amount of electrical stimulation to apply to the at least one body part of the person; and delivering said amount of electrical stimulation to the at least one body part of the person via at least one electrode.
 19. The method of claim 18, wherein the at least one sensor is an electrogoniometer configured to measure the angle between a first body part of a person and a second body part of a person coupled at a joint.
 20. The method of claim 18, wherein the electrical stimulation assists the person in engaging in a functional activity.
 21. The method of claim 20, wherein the functional activity comprises standing.
 22. The method of claim 20, wherein the functional activity comprises walking.
 23. The method of claim 18, wherein the calculating step comprises utilizing a closed-loop control method that achieves asymptotic stability or ultimately bounded tracking.
 24. The method of claim 18, wherein the calculating step comprises tracking the time-varying trajectory of at least one body part of the person.
 25. The method of claim 18, wherein the calculating step comprises utilizing a robust integral of the sign of the error (RISE) control method.
 26. The method of claim 18, wherein the calculating step comprises utilizing a predictor-type control method that compensates for electromechanical delay.
 27. The method of claim 18, wherein the calculating step comprises utilizing a control method comprising an adaptive feedforward method.
 28. The method of claim 27, wherein the adaptive feedforward method comprises a neural network-based method. 